package com.liam.algorithm;

public class BubbleSort {

    static int[] list = new int[]{3, 1, 7, 5, 9, 4, 2};

    public static void main(String[] args) {
        list = sort(list);
        for (int n : list) {
            System.out.println(n);
        }
    }

    /**
     * 冒泡排序     n-1 次       低效率
     *
     * 比较相邻的元素。如果第一个比第二个大，就交换他们两个。
     * 一轮后最后的元素应该会是最大的数
     * 针对所有的元素重复以上的步骤，除了最后一个
     * 持续每次对越来越少的元素重复上面的步骤，直到没有任何一对数字需要比较。
     *
     * @param list
     * @return
     */
    private static int[] sort(int[] list) {
        int temp;
        for (int i = 1; i < list.length; i++) {
            // todo  list.length - i  前轮已将确定的元素移到最后，所以只要处理0-i之前未处理的即可
            for (int j = 0; j < list.length - i ; j++) {
                if (list[j] > list[j + 1]) {
                    temp = list[j];
                    list[j] = list[j + 1];
                    list[j + 1] = temp;
                }
            }
        }

        return list;
    }

}
